package com.shujia.day07.ketang;

public class Code03EmployeeDemo {
    /*
        假如我们系统需要有一个员工管理平台，需要对员工类进行设计，其中员工类的属性包括  姓名  工号  薪资

        经理 除了员工属性以外，还有一个奖金属性
        程序员 就是标准的员工属性
        使用继承和抽象类的思想来完成员工类

        员工类：
            属性： 姓名  工号  薪资
            功能： 工作（抽象方法）
        程序媛 extend 员工类：
            工作（敲代码）

        经理 extend 员工类:
            属性：年终奖
            工作 （做PPT文档）
     */

    public static void main(String[] args) {
        Manager manager = new Manager("杨浩","1001",18000,80000);
        manager.work();

        Programmer programmer = new Programmer("柏杨", "1002", 8000);
        programmer.work();

    }

}

abstract class Employee{
    String name;
    String id;
    int pay;

    public Employee(String name, String id, int pay) {
        this.name = name;
        this.id = id;
        this.pay = pay;
    }

    public abstract void work();

}


class Programmer extends Employee{
    public Programmer(String name, String id, int pay) {
        super(name, id, pay);
    }

    @Override
    public void work() {
        System.out.println("程序员可以写程序...");
    }
}


class Manager extends Employee {

    public Manager(String name, String id, int pay, int bonus) {
        super(name, id, pay);
        this.bonus = bonus;
    }

    int bonus;

    @Override
    public void work() {
        System.out.println("经理可以管理程序员...");
    }
}


